#pragma once
#include "common.h"
#include "IRenderContext.h"

struct IEngineWindow;
typedef shared_ptr<IEngineWindow> IEngineWindowPtr;

struct IRenderObject {
};

struct IEngineRenderContext {
	virtual void Clear() = 0;
};
typedef shared_ptr<IEngineRenderContext> IEngineRenderContextPtr;

struct IEngineRenderDevice {
	virtual IEngineRenderContextPtr GetRenderContext() const = 0;
	virtual void Present() = 0;
};
typedef shared_ptr<IEngineRenderDevice> IEngineRenderDevicePtr;

struct RenderSetup {
	IEngineWindowPtr 	Window;
};

IEngineRenderDevicePtr CreateEngineRenderDevice(const RenderSetup& setup, RENDER_CONTEXT_TYPE type);

